logo
Expand description

CosmRS: Cosmos Wallet and SDK for Rust

Crate Docs Build Status Apache 2.0 Licensed MSRV

Framework for building Cosmos blockchain applications in Rust, modeled off of the Cosmos SDK for Golang.

About

This library is presently designed to serve as a client for interacting with the Golang implementation of the Cosmos SDK, providing things like wallet functionality such as transaction signing, and a builder/parser for Cosmos SDK formatted transaction messages.

It does not implement server-side functionality (yet), such as hooks and message passing.

Features

  • CosmWasm: messages used by smart contracts written using CosmWasm
  • Staking: support for staking with validators
  • Transactions: build, sign, and/or parse Cosmos SDK transactions

Minimum Supported Rust Version

This crate is supported on Rust 1.57 or newer.

Re-exports

CosmRS re-exports the following crates for easy access:

  • bip32: re-exported as cosmrs::bip32
  • cosmos-sdk-proto: re-exported as cosmrs::proto
  • tendermint: re-exported as cosmrs::tendermint
  • tendermint-rpc: re-exported as cosmrs::rpc (requires rpc crate feature)

Re-exports

pub use crate::tx::Tx;
pub use cosmos_sdk_proto as proto;
pub use tendermint;
pub use bip32;
pub use tendermint_rpc as rpc;

Modules

Abci-related functionality

Auth functionality.

Bank module support

CosmWasm messages

Cryptographic functionality

devdev

Development-related functionality.

Distribution module support

Fee grant module support

Staking module support

Cosmos SDK transaction support.

Vesting-related types

Structs

Account identifiers

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Coin defines a token with a denomination and an amount.

Denomination.

The core error reporting type of the library, a wrapper around a dynamic error reporting type.

Enums

Kinds of errors.

Type Definitions

type alias for Result<T, Report>